home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
031-040
/
amok35
/
patmatch
/
patmatch.dok
< prev
next >
Wrap
Text File
|
1993-11-04
|
2KB
|
67 lines
==============================================================
Dokumentation zum Modul PatMatch © Bernd Preusing 10-Feb-90
==============================================================
Copyright:
~~~~~~~~~~
Autor dieses Moduls ist Bernd Preusing, Gerhardstr. 16, D-2200 Elmshorn.
Dies Modul ist public domain. Es darf nicht ohne meine ausdrückliche
Erlaubnis zu kommerziellen Zwecken verwendet werden.
Kommerzieller Zweck ist auch der Vertrieb von PD-Disketten für mehr
als 8,- DM!
Sinn des Moduls:
~~~~~~~~~~~~~~~~
Hiermit kann ein sog. Pattern Matching durchgeführt werden, wie es z.B.
von vielen AmigaDos-Programmen bekannt ist.
Dies ist meines Wissens das erste M2Amiga-Modul, das 100% kompatibel
zu AmigaDos ist.
Benutzung des Moduls:
~~~~~~~~~~~~~~~~~~~~~
Die Prozedur CmplPat generiert aus einem Muster ein internes Format, das
von der Prozedur Match benötigt wird.
Sie braucht für jedes Muster nur einmal aufgerufen zu werden, danach
kann beliebig oft mit verschiedenen Vergleichsstrings Match gerufen
werden.
Pattern ist ein beliebiges Wildcard-Muster, z.B. '#?.mod' oder
'#?.(mod|def|obj|sym|ref)' usw. Der genaue Aufbau von Wildcards steht
im AmigaDos-Handbuch.
Aux ist eine Variable, in die das interne Format geschrieben
wird. Sie sollte mindestens so groß wie der größte anzunehmende String
sein.
Falls FALSE zurückgegeben wird, ist Pattern kein gültiges Muster.
PROCEDURE CmplPat(Pat:ARRAY OF CHAR;
VAR Aux:ARRAY OF BYTE):BOOLEAN;
Match benötigt die beiden Parameter von CmplPat, sowie den String, der
auf 'Gleichheit' überprüft werden soll.
RETURN-Wert ist TRUE, wenn Str ein gültiger Name für Pat ist, sonst
FALSE.
PROCEDURE Match(Pat:ARRAY OF CHAR;
VAR Aux: ARRAY OF UByte;
Str:ARRAY OF CHAR):BOOLEAN;
Ein Beispiel:
~~~~~~~~~~~~~
FROM PatMatch IMPORT CmplPat, Match;
VAR Buffer: ARRAY [0..100] OF CHAR; (* irgend etwas! *)
Pat, Str: ARRAY [0..100] OF CHAR;
...
ReadString(Pat);
IF CmplPat(Pat,Buffer) THEN
LOOP (* bis Stromausfall *)
ReadString(Str);
IF Match(Pat,Buffer,Str) THEN Write('Passt!')
ELSE Write('Passt nicht!')
END;
END;
ELSE
Write('Kein gültiges Muster!');
END;
========================== cut ==================================